home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / javax / swing / LegacyGlueFocusTraversalPolicy.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  2.7 KB  |  150 lines

  1. package javax.swing;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Container;
  5. import java.awt.FocusTraversalPolicy;
  6. import java.awt.Window;
  7. import java.io.IOException;
  8. import java.io.ObjectInputStream;
  9. import java.io.ObjectOutputStream;
  10. import java.io.Serializable;
  11. import java.util.HashMap;
  12. import java.util.HashSet;
  13.  
  14. final class LegacyGlueFocusTraversalPolicy extends FocusTraversalPolicy implements Serializable {
  15.    private transient FocusTraversalPolicy delegatePolicy;
  16.    private transient DefaultFocusManager delegateManager;
  17.    private HashMap forwardMap = new HashMap();
  18.    private HashMap backwardMap = new HashMap();
  19.  
  20.    LegacyGlueFocusTraversalPolicy(FocusTraversalPolicy var1) {
  21.       this.delegatePolicy = var1;
  22.    }
  23.  
  24.    LegacyGlueFocusTraversalPolicy(DefaultFocusManager var1) {
  25.       this.delegateManager = var1;
  26.    }
  27.  
  28.    void setNextFocusableComponent(Component var1, Component var2) {
  29.       this.forwardMap.put(var1, var2);
  30.       this.backwardMap.put(var2, var1);
  31.    }
  32.  
  33.    void unsetNextFocusableComponent(Component var1, Component var2) {
  34.       this.forwardMap.remove(var1);
  35.       this.backwardMap.remove(var2);
  36.    }
  37.  
  38.    public Component getComponentAfter(Container var1, Component var2) {
  39.       Component var3 = var2;
  40.       HashSet var5 = new HashSet();
  41.  
  42.       do {
  43.          Component var4 = var3;
  44.          var3 = (Component)this.forwardMap.get(var3);
  45.          if (var3 == null) {
  46.             if (this.delegatePolicy != null && var4.isFocusCycleRoot(var1)) {
  47.                return this.delegatePolicy.getComponentAfter(var1, var4);
  48.             } else {
  49.                return this.delegateManager != null ? this.delegateManager.getComponentAfter(var1, var2) : null;
  50.             }
  51.          }
  52.  
  53.          if (var5.contains(var3)) {
  54.             return null;
  55.          }
  56.  
  57.          var5.add(var3);
  58.       } while(!this.accept(var3));
  59.  
  60.       return var3;
  61.    }
  62.  
  63.    public Component getComponentBefore(Container var1, Component var2) {
  64.       Component var3 = var2;
  65.       HashSet var5 = new HashSet();
  66.  
  67.       do {
  68.          Component var4 = var3;
  69.          var3 = (Component)this.backwardMap.get(var3);
  70.          if (var3 == null) {
  71.             if (this.delegatePolicy != null && var4.isFocusCycleRoot(var1)) {
  72.                return this.delegatePolicy.getComponentBefore(var1, var4);
  73.             } else {
  74.                return this.delegateManager != null ? this.delegateManager.getComponentBefore(var1, var2) : null;
  75.             }
  76.          }
  77.  
  78.          if (var5.contains(var3)) {
  79.             return null;
  80.          }
  81.  
  82.          var5.add(var3);
  83.       } while(!this.accept(var3));
  84.  
  85.       return var3;
  86.    }
  87.  
  88.    public Component getFirstComponent(Container var1) {
  89.       if (this.delegatePolicy != null) {
  90.          return this.delegatePolicy.getFirstComponent(var1);
  91.       } else {
  92.          return this.delegateManager != null ? this.delegateManager.getFirstComponent(var1) : null;
  93.       }
  94.    }
  95.  
  96.    public Component getLastComponent(Container var1) {
  97.       if (this.delegatePolicy != null) {
  98.          return this.delegatePolicy.getLastComponent(var1);
  99.       } else {
  100.          return this.delegateManager != null ? this.delegateManager.getLastComponent(var1) : null;
  101.       }
  102.    }
  103.  
  104.    public Component getDefaultComponent(Container var1) {
  105.       return this.delegatePolicy != null ? this.delegatePolicy.getDefaultComponent(var1) : this.getFirstComponent(var1);
  106.    }
  107.  
  108.    private boolean accept(Component var1) {
  109.       if (var1.isVisible() && var1.isDisplayable() && var1.isFocusable() && var1.isEnabled()) {
  110.          if (!(var1 instanceof Window)) {
  111.             for(Container var2 = var1.getParent(); var2 != null; var2 = var2.getParent()) {
  112.                if (!var2.isEnabled() && !var2.isLightweight()) {
  113.                   return false;
  114.                }
  115.  
  116.                if (var2 instanceof Window) {
  117.                   break;
  118.                }
  119.             }
  120.          }
  121.  
  122.          return true;
  123.       } else {
  124.          return false;
  125.       }
  126.    }
  127.  
  128.    private void writeObject(ObjectOutputStream var1) throws IOException {
  129.       var1.defaultWriteObject();
  130.       if (this.delegatePolicy instanceof Serializable) {
  131.          var1.writeObject(this.delegatePolicy);
  132.       } else {
  133.          var1.writeObject((Object)null);
  134.       }
  135.  
  136.       if (this.delegateManager instanceof Serializable) {
  137.          var1.writeObject(this.delegateManager);
  138.       } else {
  139.          var1.writeObject((Object)null);
  140.       }
  141.  
  142.    }
  143.  
  144.    private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {
  145.       var1.defaultReadObject();
  146.       this.delegatePolicy = (FocusTraversalPolicy)var1.readObject();
  147.       this.delegateManager = (DefaultFocusManager)var1.readObject();
  148.    }
  149. }
  150.